source = ColumnDataSource(df)
p1 = figure(x_axis_type="datetime",x_axis_label = "Fieldwork_Midpoint_Date",y_axis_label="Con",
plot_width=600, plot_height=250, title="Conservative Voteshare",tools='box_select,lasso_select,pan,wheel_zoom,box_zoom,reset')
p1.scatter('Fieldwork_Midpoint_Date', 'Con', source=source, color='blue')
p2 = figure(x_axis_type="datetime",x_axis_label = "Fieldwork_Midpoint_Date",y_axis_label="Lab",
plot_width=600, plot_height=250, title="Labour Voteshare",tools='box_select,lasso_select,pan,wheel_zoom,box_zoom,reset')
p2.scatter('Fieldwork_Midpoint_Date', 'Lab', source=source, color='red')
p3 = figure(x_axis_type="datetime",x_axis_label = "Fieldwork_Midpoint_Date",y_axis_label="Lab",
plot_width=600, plot_height=250, title="LibDem Voteshare",tools='box_select,lasso_select,pan,wheel_zoom,box_zoom,reset')
p3.scatter('Fieldwork_Midpoint_Date', 'LD', source=source, color='orange')
# Link the x_range of p2 to p1: p2.x_range
p2.x_range = p1.x_range
# Link the y_range of p2 to p1: p2.y_range
p2.y_range = p1.y_range
# Link the x_range of p3 to p1: p3.x_range
p3.x_range = p1.x_range
layout = column(p1,p2,p3)
show(layout)